iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 6
0
IoT

玩玩 BLE系列 第 6

[Day 06] 藍牙掃描(Scanning)

  • 分享至 

  • xImage
  •  

掃描(Scanning)

掃描的基礎(Scanning Basics)

BLE裝置未連線時,可以透過發送廣播封包來讓大家知道裝置的存在,也可以掃描附近的廣播裝置。掃描的過程稱做"Device discovery"。掃描可分為兩種:主動(active)與被動(passive)。
這兩者的差異為:
主動掃描會發出掃描請求(Scan request)用來要求廣播設備提供額外的訊息,廣播設備收到掃描請求時則會回應掃描回應(Scan response);
被動掃描則只會接收廣播設備主動發出的廣播資料(Advertising data)。
注意:"Discovery"和"Scanning)可能會互換使用。
下圖畫出在掃描事件中,掃描裝置向廣播裝置發送掃描請求的順序。
Scan request and scan response

提到廣播的時間點,有幾個參數必須要先認識。每個參數在藍牙核心規範(Bluetooth core specification)中都有訂定範圍。Time Inter Frame Space (T_IFS) 是同一個廣播頻道中,連續兩個連續數據封包的時間間隔,BLE的規範是150us。

Scan Parameter Description Range
Scan Window 在一個頻道上掃描的持續持間 10ms to 10.24s
Scan Interval 兩個連續掃描窗口(Scan window)起始時間的間隔 10ms to 10.24s
Scan Duration 藍牙裝置處於掃描狀態的時間 10ms to 65534ms, or scans indefinitely
下圖直觀的呈現掃描參數:
Scanning parameters
請注意,掃描頻道的順序是無法被設置的。
掃描設備將在每個掃描區間(Scan Interval)依序掃描CH 37(2402 MHz)、CH 38(2426 MHz)和CH 39(2480 MHz),並在每個通道掃描一段時間(Scan Window)。

掃描封包(Scanning Packets)

次要廣播頻道上的可掃描廣播封包也可以發起掃描請求(Scan Request)和掃描回應(Scan Response)。
他們的封包類型叫做"AUX_SCAN_REQ"和"AUX_SCAN_RSP"。
下表整理了所有與掃描有關的封包類型:

Scanning PDU 發起的裝置 Payload
SCAN_REQ 掃描裝置 掃描裝置的位址和廣播裝置的位址
SCAN_RSP 廣播裝置 廣播裝置的位址和0~31 Bytes的掃描回應封包
AUX_SCAN_REQ 掃描裝置 掃描裝置的位址和廣播裝置的位址
AUX_SCAN_RSP 廣播裝置 廣播裝置的位址和0~254 Bytes 的掃描回應封包

掃描請求和掃描回應都在接收到廣播的那個頻道和PHY中被發送。

以上是TI 官方提供的文件翻譯。

參考文章:


上一篇
[Day 05] 藍牙廣播(Advertising) (2/2)
下一篇
[Day 07] 藍芽連接(Connection) (1/2)
系列文
玩玩 BLE27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言